<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jsTree v.1.0 - languages documentation</title>
<script type="text/javascript" src="../_lib/jquery.js"></script>
<script type="text/javascript" src="../_lib/jquery.cookie.js"></script>
<script type="text/javascript" src="../_lib/jquery.hotkeys.js"></script>
<script type="text/javascript" src="../jquery.jstree.js"></script>

<link type="text/css" rel="stylesheet" href="syntax/!style.css" />
<link type="text/css" rel="stylesheet" href="!style.css" />
<script type="text/javascript" src="syntax/!script.js"></script>
</head>
<body>
	<div id="container">

		<h1 id="dhead">jsTree v.1.0</h1>
		<h1>languages plugin</h1>
		<h2>Description</h2>
		<div id="description">
			<p>
				The
				<code>languages</code>
				plugin enables multilanguage trees. This means that each node has a
				specified number of titles - each in a different "language". Only
				one language set is visible at any given time. This is useful for
				maintaining the same structure in many languages (hence the name of
				the plugin)
			</p>
		</div>

		<h2 id="configuration">Configuration</h2>
		<div class="panel configuration">
			<p>Expects an array of language codes. Each of the items is used
				as a CSS class name, so make sure you specify only valid CSS class
				name strings. The first langauge will be visible onload. For
				example:</p>
			<p>
				<code>[ "en", "de", "bg" ]</code>
			</p>
		</div>

		<h2 id="demos">Demos</h2>
		<div class="panel">
			<p>
				Check your data plugin documentation (<a href="html_data.html">html_data</a>,
				<a href="xml_data.html">xml_data</a>, <a href="json_data.html">json_data</a>)
				or take a close look at these examples for information on how to
				specify multilanguage nodes.
			</p>

			<h3>Using the languages plugin with HTML data</h3>
			<input type="button" class="button" value="en" id="en_1"
				style="float: left;" /> <input type="button" class="button"
				value="bg" id="bg_1" style="float: left;" /> <input type="button"
				class="button" value="rename_1" id="rename_1" style="float: left;" />
			<input type="button" class="button" value="rename_2" id="rename_2"
				style="" />
			<div id="demo1" class="demo">
				<ul>
					<li id="phtml_1"><a href="#" class="en">Root node 1</a> <a
						href="#" class="bg">Корен 1</a>
						<ul>
							<li id="phtml_2"><a href="#" class="en">Child node 1</a> <a
								href="#" class="bg">Дете 1</a></li>
							<li id="phtml_3"><a href="#" class="en">Child node 2</a> <a
								href="#" class="bg">Дете 2</a></li>
						</ul></li>
					<li id="phtml_4"><a href="#" class="en">Root node 2</a> <a
						href="#" class="bg">Корен 2</a></li>
				</ul>
			</div>
			<script type="text/javascript" class="source">
$(function () {
	$("#en_1, #bg_1").click(function () { 
		$("#demo1").jstree("set_lang", this.value);
	});
	$("#rename_1").click(function () { 
		$("#demo1").jstree("rename_node", "#phtml_1", "Rename visible lang");
	});
	$("#rename_2").click(function () { 
		$("#demo1").jstree("rename_node", "#phtml_1", "Rename `bg`", "bg");
	});
	$("#demo1").jstree({ 
		"languages" : [ "en", "bg" ],
		"plugins" : [ "themes", "html_data", "languages","checkbox"]
	});
});
</script>

		</div>

		<h2 id="api">API</h2>
		<div class="panel api">

			<h3 id="set_lang">.set_lang ( lang )</h3>
			<p>Set the tree's visible language. Triggers an event.</p>
			<ul class="arguments">
				<li><code class="tp">
						string <br />number
					</code> <strong>lang</strong>
					<p>Either the language code string (as specified in the config)
						or an index from the config array.</p></li>
			</ul>
			<h3 id="get_lang">.get_lang ( )</h3>
			<p>Returns the name of the currently visible language.</p>

			<h3 id="_get_string">._get_string ( node , lang )</h3>
			<p>
				Returns the needed string from the core config object. Overwrites
				the <a href="core.html#_get_string">get_string function</a> from the
				core. If the key does not exist in that language, but exists in the
				root of the object - that is returned, if even that does not exist -
				the key itself is returned.
			</p>
			<ul class="arguments">
				<li><code class="tp">string</code> <strong>key</strong>
					<p>
						The name of the string you are looking for. If you want to use the
						localize option just set the strings core config option to an
						object like this one:
						<code>strings : { "lang-code-here" : { "string-key" :
							"string-value" ... }, "other-lang" : { ... } }</code>
						, otherwise _get_strings won't be affected.
					</p></li>
				<li><code class="tp">string</code> <strong>lang</strong>
					<p>The language code string (as specified in the config) to get
						the key in. If not specified the currently visible language is
						used.</p></li>
			</ul>

			<h3 id="get_text">.get_text ( node , lang )</h3>
			<p>
				Returns the title of a node. Overwrites the <a
					href="core.html#get_text">get_text function</a> from the core.
			</p>
			<ul class="arguments">
				<li><code class="tp">mixed</code> <strong>node</strong>
					<p>This can be a DOM node, jQuery node or selector pointing to
						the element whose title you need.</p></li>
				<li><code class="tp">string</code> <strong>lang</strong>
					<p>The language code string (as specified in the config) to get
						the title in. If you omit this - the currently visible language is
						used.</p></li>
			</ul>

			<h3 id="set_text">.set_text ( node , text , lang )</h3>
			<p>
				Sets the title of a node. Overwrites the <a
					href="core.html#set_text">set_text function</a> from the core. This
				is used internally - you should use <a href="core.html#rename_node">rename_node</a>.
				Since
				<code>rename_node</code>
				uses
				<code>set_text</code>
				internally you can pass a language string as a third parameter to
				rename_node.
			</p>
			<ul class="arguments">
				<li><code class="tp">mixed</code> <strong>node</strong>
					<p>This can be a DOM node, jQuery node or selector pointing to
						the element whose title you want to change.</p></li>
				<li><code class="tp">string</code> <strong>text</strong>
					<p>The new title.</p></li>
				<li><code class="tp">string</code> <strong>lang</strong>
					<p>The language code string (as specified in the config) to get
						the title in. If you omit this - the currently visible language is
						used.</p></li>
			</ul>

			<h3 id="_load_css">._load_css ( )</h3>
			<p>used only internally to include the CSS necessary for the
				plugin onload.</p>

			<h3 id="create_node">.create_node ( obj , position , js ,
				callback )</h3>
			<p>
				Overwrites the <a href="core.html#create_node">create_node</a>
				function from the core. To create a node with a few titles use an
				array for the
				<code>data</code>
				property of the
				<code>js</code>
				parameter:
			</p>
			<p>
				<code>{ "data" : [ { "title" : "EN title", language : "en" },
					{ "title" : "BG заглавие", language : "bg" } ] }</code>
			</p>

		</div>

	</div>
</body>
</html>